import { customRef } from 'vue'

export default function (initValue:string,delay:number) {
    // let valueMsg = ref("你好")
    //使用Vue提供的CustomRef定义响应式数据
    // let initValue = ' 你好' //initValue用传过来的字符串
    let timer: number
    // track(跟踪)、 trigger(触发)
    let valueMsg = customRef((track, trigger) => {
        return {
            // get何时调用? - msg被读取时
            get() {
                track() //告诉Vue数据msg很重要，你要对msg进行持续关注，-旦msg变化就去更新
                return initValue
            },
            // set何时调用?一msg被 修改时
            set(value) {
                clearTimeout(timer)
                timer = setTimeout(() => {
                    console.log(' set', value)
                    initValue = value
                    trigger() //通知Vue一 下数据msg变化了
                }, delay)//delay用传过来的时间
            }
        }
    })
    return {valueMsg}
}